#include <iostream>
#include <Eigen/Dense>
#include <opencv2/opencv.hpp>

using namespace Eigen;
using namespace std;
using namespace cv;

int main()
{
	//Eigen
	MatrixXd mat1(2, 3), mat2(3, 2);
	mat1 << 1, 1, 1, 1, 1, 1;
	mat2 << 1, 4, 2, 5, 3, 6;
	cout << "(Eigen)AB = \n" << mat1 * mat2 << endl;

	//OpenCV
	Mat A=Mat::ones(2, 3,CV_32FC1);
	Mat B=Mat::ones(3, 2,CV_32FC1);
	Mat AB;
	A.at<float>(0,0)=1;
	A.at<float>(0,1)=1;
	A.at<float>(0,2)=1;
	A.at<float>(1,0)=1;
	A.at<float>(1,1)=1;
	A.at<float>(1,2)=1;
	B.at<float>(0,0)=1;
	B.at<float>(0,1)=4;
	B.at<float>(1,0)=2;
	B.at<float>(1,1)=5;
	B.at<float>(2,0)=3;
	B.at<float>(2,1)=6;
	cout << "(OpenCV)AB = \n" << A * B << endl;

	return 0;
}

